package com.gitee.chessboard.jdbc.executor;

import java.util.List;

/**
 * sql的执行器
 *
 * @author 敲代码的旺财
 * @date 2021/11/18 14:12
 */
public interface SqlExecutor {
    /**
     * 根据对象创建表
     *
     * @param object 需要创建表的对象
     */
    void createTable(Object object);

    /**
     * 根据对象插入数据
     *
     * @param object 需要插入的对象
     */
    void insert(Object object);

    /**
     * 根据对象插入数据或者更新数据
     *
     * @param object 需要插入的对象
     */
    void insertOrUpdate(Object object);

    /**
     * 获取指定类型的所有对象
     * @return 指定类型的所有对象
     */
    <T> List<T> getAll(T obj);

    //TODO 一些数据库的其他操作

    /**
     * 根据id删除
     * @param obj
     * @param <T>
     * @return
     */
    <T> int delete(T obj);
}
